package top.lixunda.ecommerce.server.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import top.lixunda.ecommerce.server.user.api.entity.db.UserRoleDO;
import top.lixunda.ecommerce.server.user.api.entity.dto.UserRoleInsertDTO;
import top.lixunda.ecommerce.server.user.api.entity.dto.UserRoleRemoveDTO;

import java.util.List;

/**
 * 用户角色表，关联用户与角色表 服务类
 *
 * @author Xumda
 * @since 2020-04-23
 */
public interface IUserRoleService extends IService<UserRoleDO> {

    /**
     * 分配店铺角色
     *
     * @param list 角色操作DTO
     * @return 是否保存成功
     */
    Boolean allotStoreRole(List<UserRoleInsertDTO> list);

    /**
     * 分配管理系统角色
     *
     * @param list 角色操作DTO
     * @return 是否保存成功
     */
    Boolean allotAdminRole(List<UserRoleInsertDTO> list);

    /**
     * 移除店铺角色
     *
     * @param list 角色操作DTO
     * @return 是否移除成功
     */
    Boolean removeStoreRoleAllot(List<UserRoleRemoveDTO> list);

    /**
     * 移除管理系统角色
     *
     * @param list 角色操作DTO
     * @return 是否移除成功
     */
    Boolean removeAdminRoleAllot(List<UserRoleRemoveDTO> list);

    /**
     * 根据分配编号移除店铺角色分配
     *
     * @param list 分配编号列表
     * @return 是否移除成功
     */
    Boolean removeStoreRoleAllotByIds(List<Integer> list);

    /**
     * 根据分配编号移除管理系统角色分配
     *
     * @param list 分配编号列表
     * @return 是否移除成功
     */
    Boolean removeAdminRoleAllotByIds(List<Integer> list);

}
